A cloud computing platform may be an attractive platform architecture for many applications, particularly because of its support for elastic scaling in response to changing loads. However, adoption of cloud computing may be hampered by reduced computing efficiency, higher management cost, and greater vulnerability to attack, as compared with the use of traditional, dedicated servers.
Cloud computing architectures are traditionally based on full or hardware-level virtualization techniques, providing cloud users with an easy path for migrating existing applications to a new environment. However, replicating the entirety of an operating system and emulating the hardware it runs on introduces many inefficiencies. While sophisticated hypervisors can mitigate some of the duplicated memory and storage needs, full virtualization remains inefficient at runtime and during “elastic” scaling operations by creating new instances in response to increased load. Full virtualization may also bring with it all the management headaches that may come with long-term operating system maintenance, including extensive configuration tasks and the potential need to apply regular security updates.